第4章 文件搜索命令¶
4-1 文件搜索命令locate¶
文件搜索命令 locate
locate [文件名]
在后台数据库中按文件名搜索,搜索速度更快
数据库文件 /var/lib/mlocate,不实时更新,每天更新
updatedb强制更新database,即可搜索到当天的新建文件
默认不搜索/tmp等目录,可修改/etc/updatadb.conf配置文件参数,如不搜索的文件系统,文件类型,路径等。
缺点只可根据文件名搜索,但是搜索速度快
4-2 命令搜索命令¶
搜索命令的命令whereis
whereis [选项] [命令名]#搜索命令所在路径及帮助文件所在位置
-b 只查找可执行文件
-m 只查找帮助文件
which [命令名]#搜索命令所在路径及别名
两者都依赖环境变量path
path环境变量:系统搜索命令的路径
echo $PATH#查看环境变量
cd等shell内置的命令无法通过whereis和 which搜索到,搜索到的都是外来安装命令
4-3 find命令¶
find [搜索范围] [搜索条件]#搜索文件
e.g. find \ -name install.log
- 避免大范围搜索,会非常消耗系统资源
- find命令是在系统中搜索完全匹配的文件;如果需要匹配,需要是同通配符,通配符完全匹配
Linux通配符¶
- *匹配任意内容
- ?匹配任意字符
- [ ]匹配括号中的任意字符
find /root -iname install.log#不区分大小写
find /root -user root#按所有人搜索(不常用)
find /root nouesr#查找没有所有者的文件
nouser的文件,除了系统内核产生的文件,如/proc,/sys中的文件,和外来文件,如u盘拷贝,其他都是垃圾文件
find /var/log -mtime +10#查找10天前修改的文件
-atime 文件访问时间
-mtime 修改文件内容时间
-ctime 改变文件属性
-10 10天内
10 10天当天
+10 10天前
find . -size 25k#查找当前目录下25KB的文件,.代表当前目录,也可写其他目录;KB为小写k,MB为大写M
+25k 大于25KB
25k 等于25KB
-25k 小于25KB
find . inam 262422#查找node
find /etc -size +20k -a -size -50k#查找/etc/目录下,大于20KB小于50KB的文件
-a and 逻辑与,两条件都满足
-o or 逻辑或,两条件满足一个即可
find /etc -size +20k -a -size -50k -exec ls -lh {}\;#查找/etc/目录下,大于20KB小于50KB的文件,并显示详细信息
#-exec [命令] {}\;对搜索结果执行命令
4-4 grep命令¶
搜索字符串命令grep
grep [选项] 字符串 文件名#在文件中匹配符合条件的字符串,返回整行
-i 忽略大小写
-v 排除指定的字符串
- find命令在系统中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配
- grep命令在文件中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式是包含匹配